The most efficient way of using a multiple data channel flash memory storage device is to use all its data channels simultaneously for data transmission. FIG. 1 is a simplified diagram showing an 8-channel flash memory storage device 10, which includes a flash control integrated circuit (IC) 28 and n+1 block groups BLK8[0], BLK8[1], BLK8[2], . . . , BLK8[n], where ‘n’ is a natural number and the number in the brackets ‘[ ]’ represents the physical block number of the block group. For example, as shown in FIG. 1, the block group BLK8[0] is located in the 0-th row and the block group BLK8[n] is located in the n-th row. Each of the block groups BLK8[0], BLK8[1], BLK8[2], . . . , BLK8[n] contains eight blocks and therefore, the flash memory storage device 10 has eight data channels 12, 14, 16, 18, 20, 22, 24 and 26. When all the data channels at a location are good blocks, a fixed amount of data can be written into the location most efficiently. For this reason, the flash control IC 28 always groups the data into the size of a fixed amount as far as possibility, where the fixed amount of data refers to the data size receivable in one block group. In FIG. 1, each of the block groups BLK8[0], BLK8[1], BLK8[2], . . . , BLK8[n] has eight blocks and is thus capable of accommodating the data size of eight blocks.
Unfortunately, the program/erase endurance of a flash memory is finite. Due to repeated access or defects already existing before delivery, it is very likely that some flash memory chips have more defective blocks than others. In a block group including any defective block, it is impossible to write data in the size of eight blocks. For example, assuming that each flash memory chip allows for 10,000 times of programming/erasing operations, when the flash memory storage device 10 executes the 9,000th time of programming/erasing operation, it may have only seven data channels remaining to be workable because there are too many defective blocks in the flash memory chips of some certain data channel. In this case, two traditional methods may be adopted: one is to have the flash memory storage device 10 enter into the read-only mode, and the other is to retire the flash memory storage device 10.
U.S. Pat. No. 6,345,367 issued to Sinclair proposed an alternative method, which records the locations of defective blocks in a record table so that those defective blocks can be skipped in write. However, this solution retards the write speed and consequently reduces efficiency.
Therefore, it is desired a mechanism to manage the good blocks in a flash memory storage device for further use therewith, so as to improve the efficiency and life of the flash memory storage device.